The present invention relates to web objects, and in particular to the caching of web objects. Specifically, a method and apparatus are disclosed for caching web objects which are both within and outside of an assigned partition.
As more and more people are connecting to the World Wide Web through personal computers and other digital appliances, the degradation in response time accessing the Web has become an unpleasant experience for many users. One possible way to improve Web access time is to install a collection of computer servers, such as the Netfinity PC servers offered by IBM, as proxy is servers to the Web. Frequently referenced web objects are cached on these proxy servers. Proxy caching thus allows a large number of clients to quickly access locally-cached web objects. Requests for locally-cached web objects can be serviced by the proxy cache servers rather than a remote originating web server, thus reducing the total traffic to the originating web servers as well as the overall traffic on the Internet.
Due to the exploding growth in the use of the Web, more and more organizations are employing collections of shared web caches, instead of just a single cache, to serve as the proxy server. A collection of shared web caches has many advantages over a single cache in terms of reliability and performance.
A collection of shared web cache servers can be coordinated to aggregate their collective cache capacity so as to maximize their overall caching effectiveness. One such coordination protocol is to use a hash routing protocol, such as the cache array routing protocol, or CARP (V. Valloppillil and K. W. Ross, xe2x80x9cCache Array Routing Protocol v1.0,xe2x80x9d Internet Draft, http://ircache.nlanr.net/Cache/ICP/draft-vinod-carp-v1-03.txt, February 1998). CARP is an emerging Internet standard protocol. In a hash routing protocol, such as CARP, the URL (uniform resource locator) space is partitioned among is the shared cache servers. Each partition is then assigned to a cache server. A cache server is then responsible for caching and maintaining the objects belonging to the assigned partition. Usually a hash function is applied, either by the client browsers or the cache servers, to a key associated with a request for a web object, such as the URL or target IP address, to find a partition corresponding to that URL or target IP address. The request for the web object is then sent to the cache server associated with the correct partition. In the case of server-executed hashing, client requests sent to a cache server for objects that belong to a non-assigned partition will be forwarded to the cache server associated with the assigned partition. Duplication of cache contents is eliminated and traffic between the collection of cache servers and the originating web servers is thus minimized.
Without some replication of web objects among the several web cache servers, however, multiple requests for the same objects will be repeatedly forwarded to the same assigned cache server by the other cache servers. Such repeatedly-forwarded requests impose additional CPU processing load on the assigned-partition server and generate additional traffic among the cache servers. As a result, client response times will be degraded.
A plurality of web objects are cached, A first object is within an assigned web partition, A second object is outside of the assigned web partition. The first object is placed in a first amount of space within the cache. The second object is placed in a second amount of space within the cache. The first amount of space includes and is larger than the second amount of space.